﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using VentaElectrodomesticos.Contrato;
using System.Transactions;
using System.Data.SqlClient;

namespace VentaElectrodomesticos.Datos
{
    class FacturaDAO : BaseDAO<Factura>
    {
        private FacturaProductoDAO facturaProductoDAO = new FacturaProductoDAO();
        private PagoDAO pagoDAO = new PagoDAO();

        public override bool save(Factura entity)
        {
            return this.insert(entity);
        }

        protected override string getTableView()
        {
            return "facturasPendientes";
        }

        public override bool insert(Factura entity)
        {            
            entity.Id = this.insertAndReturnId(entity);
            foreach (Producto producto in entity.__productos)
            {
                FacturaProducto facturaProducto = new FacturaProducto();
                facturaProducto.Sucursal_Id = entity.Sucursal_Id;
                facturaProducto.Factura_Id = entity.Id;
                facturaProducto.Producto_Id = producto.Id;
                facturaProducto.cantidad = producto.__cantidad;
                facturaProducto.precioCobrado = producto.__total;
                this.facturaProductoDAO.insert(facturaProducto);
            }
            if (entity.__pago != null)
            {
                entity.__pago.Factura_Id = entity.Id;
                pagoDAO.insert(entity.__pago);
            }                            
            return true;
        }
    }
}
